#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>

int main(){
	int ret;
	char buff[32] = {0};
	//文件描述符
	int fd;
	//创建一个myfifo的管道文件
	ret = mkfifo("/home/linux/CProject/IO/day6_bingfa/myfifo", 0666);
	if(ret < 0){
		perror("mkfifo");
	}

	//以读的方式打开myfifo文件
	fd = open("/home/linux/CProject/IO/day6_bingfa/myfifo",O_RDONLY);
	if(fd < 0){
		perror("open");
		return -1;
	}
	printf("after open\n");

	//往myfifo文件中写入键盘输入的数据
	while(1){
		//这一行如果不执行，则打印的buff值会受上一次buff值的影响
		memset(buff, 0, 32);
		ret = read(fd, buff, 32);
		if(ret > 0){
			printf("read buff : %s\n", buff);
		}else if(ret == 0){
			//当写进程退出时，由于有名管道的写端被全部关闭，此时read函数没有阻塞，直接返回0
			exit(0);
		}
	}





}
